Automatic adjustment of a camera view for a three-dimensional navigation system

ABSTRACT

Methods and systems for automatically adjusting a three-dimensional navigation system are provided. A method for automatically adjusting a display viewpoint for a three-dimensional navigation system may include receiving a velocity of a vehicle and a look-ahead distance between the vehicle and a look-ahead point, determining a range distance between the vehicle and the display viewpoint, determining the first position of the display viewpoint, displaying a three-dimensional view of a navigation route for the vehicle from the first position, receiving a change in the look-ahead distance, determining a new range distance, determining a second position of the display viewpoint, and automatically moving the position of the display viewpoint to the second position on a curvilinear swoop path located above and behind the vehicle. A corresponding system may include a navigation information collector, a range determiner and a display viewpoint adjuster.

BACKGROUND OF THE INVENTION

1. Technical Field

Embodiments of the present invention generally relate to vehiclenavigation and route planning systems and more particularly to vehiclenavigation systems capable of displaying three-dimensional maps andimagery.

2. Background Information

Electronic vehicle navigation systems and portable navigation devices(PND) provide route calculations, turn-by-turn instructions, voiceprompts and imagery to help guide and direct a driver to a destination.Such systems typically utilize a global positioning system (GPS) todetermine a vehicle's location in relation to a digital map displayed toa driver. These systems also typically include a processor, othercomputer hardware, and software designed to accept user input, calculatenavigation routes and convey real-time navigation information to adriver.

In 2010, the global vehicle navigation system and PND market wasestimated at nearly 40 million devices. Increasing popularity ofGPS-enabled smartphones and numerous free and low-cost navigationapplications should lead to continued growth in the overall number ofdevices used for vehicle navigation.

Existing vehicle navigation systems allow a driver to manually set azoom level for displayed map imagery. However, the zoom level set at onepoint in time remains constant, even when driving conditions change. Inaddition, many commercial navigation systems include as many as ten ormore zoom levels, which require manual scrolling on a slider or tappingto carry out adjustment. Thus, a driver must either manually adjust thezoom level while driving or accept an unadjusted and potentiallyconfusing navigation display. Both scenarios can lead to drivingmistakes, driver frustration and increased safety risks.

BRIEF SUMMARY OF THE INVENTION

Methods and systems for automatically adjusting a camera view for athree-dimensional navigation system are provided.

In an embodiment, a method for automatically adjusting a displayviewpoint of a three-dimensional navigation system includes receiving avelocity of a vehicle and a look-ahead distance between the vehicle anda look-ahead point. A range distance between the vehicle and the displayviewpoint is determined based on the received velocity and look-aheaddistance. A first display viewpoint position is determined based on therange distance. A three-dimensional view of a navigation route is thendisplayed from the first display viewpoint position. Next, a change isreceived in the look-ahead distance. A new range distance is determinedbased on the velocity and the change in look-ahead distance. A seconddisplay viewpoint position is then determined based on the new rangedistance. Finally, the tilt of the display viewpoint is automaticallyadjusted and the position of the display viewpoint is automaticallymoved to the second position located on a curvilinear swoop path aboveand behind the vehicle.

In an additional embodiment, a system for automatically adjusting adisplay viewpoint of a three-dimensional navigation system for a vehicleincludes a navigation information collector configured to receive avelocity of the vehicle and a look-ahead distance between the vehicleand a look-ahead point. The system also includes a range determinerconfigured to determine a range distance between the vehicle and thedisplay viewpoint based on the velocity and the look-ahead distance. Thesystem further includes a display viewpoint adjuster configured todetermine a first position of the display viewpoint based on the rangedistance, to display a three-dimensional view of a navigation route forthe vehicle from the first position, to receive a change in thelook-ahead distance, to determine a new range distance based on thevelocity and the change in the look-ahead distance, to determine asecond position of the display viewpoint based on the updated rangedistance, and to automatically adjust a tilt of the display viewpointand move the position of the display viewpoint to the second positionlocated along a curvilinear swoop path above and behind the vehicle.

In another embodiment, a computer-readable storage device having controllogic recorded thereon is executed by a processor, which causes theprocessor to automatically adjust a display viewpoint of athree-dimensional navigation system for a vehicle. The control logicincludes a first computer-readable program code to cause the processorto receive a velocity of the vehicle and a look-ahead distance betweenthe vehicle and a look-ahead point. The control logic also includes asecond computer-readable program code to cause the processor todetermine a range distance between the vehicle and the display viewpointbased on the velocity and the look-ahead distance. Further, the controllogic includes a third computer-readable program code to cause theprocessor to determine the first position of the display viewpoint basedon the range distance, to display a three-dimensional view of anavigation route for the vehicle from the first position, to receive achange in the look-ahead distance, to determine a new range distancebased on the velocity and the change in the look-ahead distance, todetermine a second position of the display viewpoint based on theupdated range distance, and to automatically adjust the displayviewpoint tilt and move the position of the display viewpoint to thesecond position located along a curvilinear swoop path above and behindthe vehicle.

Further embodiments, features, and advantages of the invention, as wellas the structure and operation of the various embodiments of theinvention are described in detail below with reference to accompanyingdrawings.

BRIEF DESCRIPTION OF THE FIGURES

Embodiments of the invention are described with reference to theaccompanying drawings. In the drawings, like reference numbers mayindicate identical or functionally similar elements. The drawing inwhich an element first appears is generally indicated by the left-mostdigit in the corresponding reference number.

FIG. 1 is a block diagram of a system for automatically adjusting adisplay viewpoint of a three-dimensional navigation system according toan embodiment.

FIG. 2 is an illustration of a virtual camera display viewpoint for athree-dimensional navigation system according to an embodiment.

FIG. 3 is a flow diagram of a method for automatically adjusting adisplay viewpoint of a three-dimensional navigation system according toan embodiment.

FIG. 4 is an illustration of the general movement of a virtual cameraalong a curvilinear swoop path according to an embodiment.

FIG. 5 is an illustration of a navigation system screen layout accordingto an embodiment.

FIG. 6 is an illustration of a navigation display view according to anembodiment.

FIG. 7 is an additional illustration of a navigation display viewaccording to an embodiment.

FIG. 8 is an illustration of a temporary alternative viewpoint accordingto an embodiment.

FIG. 9 is a diagram of a computer system that may be used in anembodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments are described herein with reference to the illustrativeembodiments for particular applications, it should be understood thatthe invention is not limited to the described embodiments. Those skilledin the art with access to the teachings provided herein will recognizeadditional modifications, applications, and embodiments within the scopethereof and additional fields in which the invention would be ofsignificant utility.

In the detailed description of embodiments that follows, references to“one embodiment”, “an embodiment”, “an example embodiment”, etc.,indicate that the embodiment described may include a particular feature,structure, or characteristic, but every embodiment may not necessarilyinclude the particular feature, structure, or characteristic. Moreover,such phrases are not necessarily referring to the same embodiment.Further, when a particular feature, structure, or characteristic isdescribed in connection with an embodiment, it is submitted that it iswithin the knowledge of one skilled in the art to effect such feature,structure, or characteristic in connection with other embodimentswhether or not explicitly described.

Vehicle navigation systems provide audio and visual route navigationinstructions with corresponding map imagery to guide a driver to adestination. Such systems also may be used to find alternative routesand to locate points of interest. However, existing vehicle navigationsystems do not provide continuous, automated adjustment of a vehiclenavigation display according to real-time driving conditions. As aresult, a driver must either manually adjust zoom and display settingsor accept a stale display view until an update occurs.

Embodiments described herein relate to automatic adjustment of a cameraview for a three-dimensional navigation system. Such embodiments providethe perspective of a personalized, virtual flying camera positioned atvarious points along a curvilinear swoop path located above and behind avehicle, or a representation of the vehicle. The position and tilt ofthe virtual camera viewpoint are automatically adjusted based on changesin driving conditions, without any manual intervention. Thus, a driveris automatically presented with navigation imagery tailored toconstantly changing driving conditions, thereby reducing distraction andimproving the driving experience.

Additional embodiments may also extend and apply to any moving objectwith variable speed. Such objects may include, but are not limited to,boats, ships, trains, buses, motorcycles, taxis, and driverlessvehicles. These and other types of moving objects with variable speedare generally referred to herein as a vehicle. In addition, embodimentsare not limited to vehicle navigation and may be applied towardsvisualization relating to any moving object, including the use ofinformational displays.

FIG. 1 is a block diagram of exemplary system 100 for automaticallyadjusting a display viewpoint of a three-dimensional navigation system,according to an embodiment. Three-dimensional views provided from thedisplay viewpoint may be rendered for display as two-dimensional scenes.Such rendering may include the use of stereoscopic, photorealistic orother imaging techniques to provide the perception of three-dimensionaldepth in a two-dimensional display.

System 100, or any combination of its components, may be part of or maybe implemented with a computing device. Examples of computing devicesinclude, but are not limited to, a computer, workstation, distributedcomputing system, computer cluster, embedded system, stand-aloneelectronic device, networked device, mobile device (e.g. mobile phone,smart phone, navigation device, tablet or mobile computing device), rackserver, set-top box, or other type of computer system having at leastone processor and memory. Such a computing device may include software,firmware, hardware, or a combination thereof. Software may include oneor more applications and an operating system. Hardware may include, butis not limited to, a processor, memory and user interface display.

The computing device can be configured to access content hosted on webservers over a network. The network can be any network or combination ofnetworks that can carry data communications. Such a network can include,but is not limited to, a wired (e.g., Ethernet) or a wireless (e.g.,Wi-Fi and 4 G) network. In addition, the network can include, but is notlimited to, a local area network, medium area network, and/or wide areanetwork such as the Internet. The network can support protocols andtechnology including, but not limited to, Internet or World Wide Webprotocols and/or services. Intermediate network routers, gateways, orservers may be provided between servers and clients depending upon aparticular application or environment.

System 100 may include a navigation system 102 in communication with adisplay viewpoint adjustment system 110, either directly or using anapplication programming interface (API). Navigation system 102 mayaccess default navigation settings 104 and driver preferences 106, whichmay be available locally or network accessible. In addition, displayviewpoint adjustment system 110 may include a navigation informationcollector 112, a range determiner 114, and a display viewpoint adjuster116.

In one embodiment, system 100 can be a computing device integrated intoa vehicle, such as an on-board navigation system installed directly intothe dashboard of the vehicle during the manufacturing process. Accordingto another embodiment, system 100 can also be a computing device that isseparate from the vehicle, but travels along with the vehicle. Forexample, system 100 can be implemented using a computing device such asa GPS-enabled smartphone or a portable-navigation device. An additionalembodiment of system 100 may include a remote computing deviceconfigured to receive information about the movement of the vehicle froma GPS tracking device.

FIG. 2 is an illustration of a virtual camera display viewpoint for athree-dimensional navigation system according to an embodiment. Virtualcamera 202 having tilt 204 is positioned at a display viewpoint positionlocated on a curvilinear swoop path 206 above and behind vehiclerepresentation 210. Look-ahead distance 212 is the distance that adriver wishes to see ahead when operating vehicle 210. Look-aheaddistance 212 may be a specific distance or a distance calculated basedon the number of seconds a driver wishes to see ahead when traveling ata certain velocity. Further, look-ahead distance 212 may be based on oneor more of default navigation system settings 104 and driver preferences106, and may be further adjusted based on any number of drivingconditions.

According to an embodiment, vehicle 210 travels down a roadway atvarying speeds along a navigation route displayed by navigation system102. Vehicle 210 has a velocity at any given moment in time with changesin velocity occurring as vehicle 210 accelerates and decelerates.

In an embodiment, navigation information collector 112 receives thevelocity of vehicle 210 and look-ahead distance 212. Range determiner114 then determines a range distance 216, which is the distance betweenvehicle 210 and the virtual camera display viewpoint position, based onthe received velocity and look-ahead distance 212. Display viewpointadjuster 116 then determines a first display viewpoint position along acurvilinear swoop path 206 and also a display viewpoint tilt 204 basedon the determined range distance 216. Virtual camera 202 is thenautomatically moved to the determined first position, tilt 204 isautomatically adjusted, and a three-dimensional navigation view from thefirst position is displayed by navigation system 102.

Navigation information collector 112 then receives an updated velocityas vehicle 210 accelerates or decelerates. Navigation informationcollector 112 may also receive an updated look-ahead distance 212 inaddition to a change in speed. Range determiner 114 determines a newrange distance 216 based on the updated velocity and the updatedlook-ahead distance. Display viewpoint adjuster 116 determines a secondposition of the display viewpoint based on the updated range distance.Display viewpoint adjuster then automatically moves the displayviewpoint to a second position along curvilinear swoop path 206 locatedabove and behind the vehicle and automatically adjusts the tilt 204 ofthe display viewpoint. As the velocity of vehicle 210 and look-aheaddistance 212 continue to change, this process will be repeated toautomatically determine and adjust the display viewpoint position andtilt based on changes in speed and driving conditions.

According to a number of embodiments, range distance 216 may becalculated as a function having one or more input variables includingone or more of a velocity of vehicle 210, a number of seconds a driverwishes to look ahead, a distance a driver wishes to look ahead, aposition where the vehicle is to appear on a three-dimensionalnavigation display, a position where the look-ahead point is to appearon a three-dimensional navigation display, an equation of a curvilinearswoop path, and one or more driver preferences relating to cameraorientation and tilt. Such embodiments may calculate range distance 216as a mathematical equation, which may incorporate one or more additionalvariables. Further, range distance 216 may be updated or recalculatedperiodically, based on an external prompt or event, and based on changesto one or more input variables.

Other embodiments may determine range distance 216 based on incrementalrefinement of the display viewpoint along a curvilinear swoop path. Forexample, the display viewpoint may be adjusted incrementally on acurvilinear swoop path 206 based on knowing the equation of curvilinearswoop path 206, a position where vehicle 210 is to be displayed on athree-dimensional navigation display, and a position where look-aheadpoint 214 is to be displayed on a three-dimensional navigation display.User preferences relating to navigation display also may be used toinfluence an incremental refinement system.

For example, according to additional embodiments, the position of thedisplay viewpoint can be incrementally adjusted higher on curvilinearswoop path 206 as a vehicle accelerates and look-ahead distanceincreases. Alternatively, the position of the display viewpoint can beadjusted lower on curvilinear swoop path 206 as a vehicle deceleratesand look-ahead distance decreases. Additional embodiments may includeuse of systems and methods presented in U.S. patent application Ser. No.12/423,434, entitled SWOOP NAVIGATION (US 2009/0259976), which isincorporated herein by reference in its entirety.

FIG. 3 is a flow diagram of a method for automatically adjusting adisplay viewpoint of a three-dimensional navigation system according toan embodiment. Method 300 begins at step 302 when vehicle 210 is inmotion. The velocity of vehicle 210 and look-ahead distance 212 tolook-ahead point 214 are received. Velocity may be received directlyfrom vehicle 210, navigation system 102 or another device capable ofcapturing or determining velocity. In addition, a future velocity may beanticipated based on a rate of acceleration or deceleration. Look-aheaddistance 212 may also be supplied using default navigation settings 104or driver preferences 102, which may be stored locally or remotely, orprovided in real-time using voice commands or computer system input.Step 302 may be performed by navigation information collector 112.

At step 304, a range distance 216 between vehicle 210 and the displayviewpoint is determined based on the received velocity and look-aheaddistance 214. Step 304 may be performed by range determiner 114.

At step 306, a first position of the display viewpoint is determinedbased on the range distance 216. Step 306 may be performed by displayviewpoint adjuster 116.

At step 308, a three-dimensional view of a navigation route for thevehicle is displayed to the driver, from the determined first position.Step 308 may be performed by display viewpoint adjuster 116.

At step 310, a change in the velocity of vehicle 210 and the look-aheaddistance is received. Step 310 may be performed by navigationinformation collector 112.

At step 312, a new range distance is determined based on the velocityand change in look-ahead distance. Step 312 may be performed by rangedeterminer 114.

At step 314, a second position of the display viewpoint is determinedbased on the new range distance. Step 314 may be performed by displayviewpoint adjuster 116.

At step 316, the position of the display viewpoint is automaticallyadjusted to the second position along a curvilinear swoop path locatedabove and behind the vehicle and the tilt of the display viewpoint isalso automatically adjusted. Step 316 may be performed by displayviewpoint adjuster 116.

FIG. 4 is an illustration of the general movement of a virtual cameraalong a curvilinear swoop path, according to an embodiment.

The size and curvature of curvilinear swoop path 404 are determineddynamically based on vehicle velocity. In addition, the displayviewpoint position and tilt of the display viewpoint are adjusted basedon changes in velocity. In an embodiment, the characteristics ofcurvilinear swoop path 404 and the display viewpoint remain unchanged ata constant velocity.

Display viewpoint 402 illustrates a display viewpoint position for avehicle traveling at a high velocity, according to an embodiment.Display viewpoint 406 illustrates a display viewpoint position for avehicle moving at a low speed, according to another embodiment.

Generally, as vehicle velocity increases, the display viewpoint positionmoves higher along curvilinear swoop path 404, increasing both the rangedistance and the visible area within range of the display viewpoint. Asvelocity decreases, the display viewpoint position moves closer to theto the vehicle, providing a more focused view of the navigation routeand its surroundings.

The tilt of the display viewpoint is also adjusted based on velocity.For example, as vehicle 210 accelerates, the curvature of curvilinearswoop path 404 increases and the display viewpoint position moves awayfrom vehicle 210 as the display viewpoint position moves higher alongthe curve. As a result, the display viewpoint tilt must be adjusteddownward based on one or more of display viewpoint position, velocity,look-ahead point, range distance, default navigation settings, anddriver preferences. On the other hand, as vehicle 210 slows down,virtual display viewpoint approaches the ground and the tilt must beadjusted horizontally to maintain focus on the look-ahead point in frontof the vehicle, which can also be fine-tuned using the same parameters.

Display viewpoint settings may be based on pre-configured systemsettings, such as default navigation system settings. Display viewpointsettings may also be parameterized based on user preference. Forexample, user preferences may include look-ahead distance, look-aheadtime, range distance, tilt angle, and other settings when traveling at aparticular speed.

In addition, the position and tilt of the display viewpoint may befurther influenced and adjusted based on changes in attributes relatedto a driver, a vehicle, a navigation route, weather, and visibility.Driver-related attributes may include a driving habit of a driver,driving performance of a driver, driver familiarity with route, vitalsigns, vision, and age. Vehicle attributes may include vehicle size,weight, and performance capabilities. Navigation route factors mayinclude terrain, route complexity, route characteristics, trafficpattern changes, actual or anticipated traffic volume, events occurringalong the navigation route, approaching objects, obstructions to thedisplay view, trip duration and proximity to a final destination point.Weather conditions, visibility, time of day, and available daylight alsomay be used as influencing factors when determining the displayviewpoint position and tilt.

FIG. 5 is an illustration of a navigation system display according to anembodiment. Navigation system display 500 includes navigation systemscreen 502 with a horizontal field of view 504 and a vertical field ofview 506, both corresponding to the look-ahead view of a navigationroute. In an embodiment, near distance 508 is where the vehicle will bepositioned on the navigation screen. Near distance 508 is approximately25% from the bottom of navigation system screen 502. Far distance 510 iswhere the look-ahead point will be positioned on the navigation screen.Far distance 510, is located approximately 25% from the top ofnavigation system screen 502. Near distance 508 and far distance 510also may be parameterized and positioned in other locations of thenavigation display based on user preference.

Existing navigation systems typically center a vehicle on a navigationsystem display. However, in an embodiment, the spacing between the neardistance and the far distance remains constant on the navigation systemdisplay. This is accomplished by further adjusting a determined displayviewpoint position and tilt to accommodate navigation system or userpreferred near distance and far distance positions on the navigationscreen.

FIG. 6 is an illustration of a navigation display view according to anembodiment. Display view 600 generalizes a virtual camera navigationdisplay view for a vehicle traveling at a relatively low speed.According to an embodiment, navigation system screen 602 displaysvehicle 604 and look-ahead point 606. Near distance 608 is consistentlydisplayed approximately 25% from the bottom of navigation system screen602. Far distance 610 is consistently displayed approximately 25% fromthe top of navigation system screen 602.

FIG. 7 is an additional illustration of a navigation display viewaccording to an embodiment. Display view 700 generalizes a virtualcamera navigation display view for a vehicle traveling at a higher speedthan the embodiment illustrated in FIG. 6. Navigation system screen 702displays vehicle 704 and look-ahead point 706. Near distance 708 isconsistently displayed approximately 25% from the bottom of navigationsystem screen 702. Far distance 710 is consistently displayedapproximately 25% from the top of navigation system screen 702.

FIG. 8 is an illustration of a temporary alternative viewpoint accordingto an embodiment. Temporary alternative display view 800 illustrates anon-traditional navigation display view that may be provided when anyphysical object such as a building, tree, or other obstruction threatensto interfere or actually interferes with the three-dimensionalnavigation view of a display viewpoint located along a curvilinear swooppath above and behind a vehicle. A temporary alternative displayviewpoint is not fixed and may be located anywhere alongside, above, orin front of a vehicle for the purpose of providing a driver with anunobstructed or improved navigation view. In addition, a temporarydisplay viewpoint may also follow its own curvilinear swoop path locatedabove any position surrounding the representation of a vehicle.

Vehicle 802 is seen from a temporary alternative viewpoint located nearthe side of the vehicle representation to prevent tall building 804 fromblocking the navigation display view during a turn. Alternatively, atemporary alternative viewpoint may be positioned, for example, in frontof and facing a representation of vehicle 802 around the corner frombuilding 804. Once the obstruction has been passed, the displayviewpoint is readjusted and returned to a position located along atraditional curvilinear swoop path above and behind the vehicle. Atemporary display viewpoint also may be used in response to otherconditions such as sudden movement of a vehicle, reverse direction of avehicle, an approaching object, an anticipated driving maneuver, atraffic pattern, and also may be further customized based on userpreference.

Temporary display viewpoint user preferences may include one or more ofa general or specific display viewpoint position or orientation, anamount of space surrounding a vehicle, and a degree of tilt for specificconditions. For example, temporary alternative viewpoint preferences maybe defined for one or more driving scenarios such as drivingenvironment, driving maneuver, speed, and navigation viewpoint obstacletype.

Example Computer Embodiment

In an embodiment of the present invention, the system and components ofembodiments described herein are implemented using well known computers,such as example computer system 900 shown in FIG. 9. For example,navigation system 102 and display viewpoint adjustment system 110 or anyof its respective modules may be implemented using computer system 900.

Computer system 900 can be any commercially available and well-knowncomputer capable of performing the functions described herein. Suchcomputer systems may include embedded computer systems, mobilecomputers, on-board computer systems and vehicle mounted computersystems.

Computer system 900 includes one or more processors (also called centralprocessing units, or CPUs), such as a processor 904. Processor 904 isconnected to a communication infrastructure 906. Such processors mayinclude ARM or SuperH-based processors.

Computer system 900 also includes a main or primary memory 908, such asrandom access memory (RAM). Main memory 908 has stored control logic(computer software), and data.

Computer system 900 also includes one or more secondary storage devices910. Secondary storage device 910 includes, for example, a hard diskdrive 912 and/or a removable storage device or drive 914, as well asother types of storage devices, such as memory cards, memory sticks andflash-based drives. Removable storage drive 914 represents a floppy diskdrive, a magnetic tape drive, a compact disk drive, an optical storagedevice, tape backup, etc.

Removable storage drive 914 interacts with a removable storage unit 918.Removable storage unit 918 includes a computer useable or readablestorage device having stored thereon computer software (control logic)and/or data. Removable storage unit 918 represents a floppy disk,magnetic tape, compact disk, DVD, optical storage disk, memory card, orany other computer data storage device. Removable storage drive 914reads from and/or writes to removable storage unit 918 in a well-knownmanner.

Computer system 900 also includes input/output/display devices 930, suchas monitors, keyboards, pointing devices, etc., which communicate withcommunication infrastructure 906 through a display interface 902.

Computer system 900 further includes a communication or networkinterface 924. Communications interface 924 enables computer system 900to communicate with remote devices. For example, communicationsinterface 924 allows computer system 900 to communicate overcommunications path 926 (representing a form of a computer useable orreadable medium), such as LANs, WANs, the Internet, etc. Communicationsinterface 924 may interface with remote sites or networks via wired orwireless connections.

Control logic may be transmitted to and from computer system 900 viacommunication path 926. More particularly, computer system 900 mayreceive and transmit carrier waves (electromagnetic signals) modulatedwith control logic via communication path 926.

Any apparatus or article of manufacture comprising a computer useable orreadable medium having control logic (software) stored thereon isreferred to herein as a computer program product or program storagedevice. This includes, but is not limited to, computer system 900, mainmemory 908, secondary storage device 910, and removable storage unit918. Such computer program products, having control logic stored thereonthat, when executed by one or more data processing devices, causes suchdata processing devices to operate as described herein, representembodiments of the invention.

Embodiments of the invention can work with software, hardware, and/oroperating system implementations other than those described herein. Anysoftware, hardware, and operating system implementations suitable forperforming the functions described herein can be used. Embodiments ofthe invention are applicable to both a client and to a server or acombination of both.

Embodiments of the present invention have been described above with theaid of functional building blocks illustrating the implementation ofspecified functions and relationships thereof. The boundaries of thesefunctional building blocks have been arbitrarily defined herein for theconvenience of the description. Alternate boundaries can be defined solong as the specified functions and relationships thereof areappropriately performed. The breadth and scope of the present inventionshould not be limited by any of the above-described exemplaryembodiments.

In addition, the foregoing description of the specific embodiments willso fully reveal the general nature of the invention that others can, byapplying knowledge within the skill of the art, readily modify and/oradapt for various applications such specific embodiments, without undueexperimentation, without departing from the general concept of thepresent invention. Therefore, such adaptations and modifications areintended to be within the meaning and range of equivalents of thedisclosed embodiments, based on the teaching and guidance presentedherein. It is to be understood that the phraseology or terminologyherein is for the purpose of description and not of limitation, suchthat the terminology or phraseology of the present specification is tobe interpreted by the skilled artisan in light of the teachings andguidance.

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections, is intended to be used to interpretthe claims. The Summary and Abstract sections may set forth one or morebut not all exemplary embodiments of the present invention ascontemplated by the inventors, and thus, are not intended to limit thepresent invention and the appended claims in any way.

The breadth and scope of the present invention should not be limited byany of the above-described exemplary embodiments, but should be definedonly in accordance with the following claims and their equivalents.

What is claimed is:
 1. A computer-implemented method for automaticallyadjusting a virtual camera display viewpoint of a three-dimensionalnavigation system for a vehicle comprising: receiving a velocity of thevehicle and a look-ahead distance between the vehicle and a look-aheadpoint; determining a range distance between the vehicle and the virtualcamera display viewpoint based on the velocity and the look-aheaddistance; determining, by a processor-based device, a first position ofthe virtual camera display viewpoint based on the range distance;displaying a three-dimensional view of a navigation route for thevehicle from the first position; receiving a change in the look-aheaddistance; determining a new range distance based on the velocity and thechange in the look-ahead distance; determining a second position of thevirtual camera display viewpoint based on the updated range distance;and automatically adjusting a tilt of the virtual camera displayviewpoint and moving the position of the virtual camera displayviewpoint to the second position, wherein the virtual camera displayviewpoint moves to the second position along a curvilinear swoop pathlocated above and behind a representation of the vehicle.
 2. The methodof claim 1, wherein the determination of the new range distance is basedon a second received velocity and the change in the look-ahead distance.3. The method of claim 1, wherein the determination of the new rangedistance is based on an anticipated velocity and the change in thelook-ahead distance.
 4. The method of claim 1, wherein the determinationof the position of the virtual camera display viewpoint and the tilt ofthe virtual camera display viewpoint are made such that the location ofthe vehicle and the location of the look-ahead point on athree-dimensional navigation system display remain constant.
 5. Themethod of claim 1, wherein the determination of the second position ofthe virtual camera display viewpoint is made to provide an unobstructeddisplay viewpoint to the driver.
 6. The method of claim 1, furthercomprising: determining a temporary alternative display viewpointposition and tilt based on a condition; and automatically readjustingthe three-dimensional view of the navigation route for the vehicle toreflect the temporary alternative display viewpoint position and tilt.7. The method of claim 6, wherein the temporary alternative displayviewpoint position and tilt are based on sudden movement of the vehicle.8. The method of claim 6, wherein the temporary alternative displayviewpoint position and tilt are based on a reverse direction of thevehicle.
 9. The method of claim 6, wherein use of a temporaryalternative display viewpoint is based on a condition existing furtheralong the navigation route in front of the vehicle.
 10. The method oldclaim 6, wherein the determination of the temporary alternative displayviewpoint position and tilt is based on avoidance of an obstruction tothe three-dimensional navigation viewpoint.
 11. The method of claim 6,further comprising: automatically returning the three-dimensional viewof the navigation route to a previously displayed viewpoint and tilt.12. A system for automatically adjusting a virtual camera displayviewpoint of a three-dimensional navigation system for a vehiclecomprising: a navigation information collector configured to receive avelocity of the vehicle and a look-ahead distance between the vehicleand a look-ahead point; a range determiner implemented by aprocessor-based device and configured to determine a range distancebetween the vehicle and the virtual camera display viewpoint based onthe velocity and the look-ahead distance; and a virtual camera displayviewpoint adjuster implemented by a processor-based device andconfigured to: determine a first position of the virtual camera displayviewpoint based on the range distance, display a three-dimensional viewof a navigation route for the vehicle from the first position, receive achange in the look-ahead distance, determine a new range distance basedon the velocity and the change in the look-ahead distance, determine asecond position of the virtual camera display viewpoint based on theupdated range distance, and automatically adjust a tilt of the virtualcamera display viewpoint and move the position of the virtual cameradisplay viewpoint to the second position, wherein the virtual cameradisplay viewpoint moves to the second position along a curvilineal swooppath located above and behind a representation of the vehicle.
 13. Thesystem of claim 12, wherein the determination of the new range distanceis based on a second received velocity and the change in the look-aheaddistance.
 14. The system of claim 12, wherein the determination of thenew range distance is based on an anticipated velocity and the change inthe look-ahead distance.
 15. The system of claim 12, wherein thedetermination of the position of the virtual camera display viewpointand the tilt of the virtual camera display viewpoint are made in partbased on the vehicle's proximity to a final destination point.
 16. Thesystem of claim 12, wherein the determination of the second position ofthe virtual camera display viewpoint is made to provide an unobstructeddisplay viewpoint to the driver.
 17. The system of claim 12, furthercomprising: determining a temporary alternative display viewpointposition and tilt based on a condition; and automatically readjustingthe three-dimensional view of the navigation route for the vehicle toreflect the temporary alternative display viewpoint position and tilt.18. The system of claim 17, wherein the temporary alternative displayviewpoint position and tilt are based on sudden movement of the vehicle.19. The system of claim 17, wherein the temporary alternative displayviewpoint position and tilt arc based on a reverse direction of thevehicle.
 20. The system of claim 17, wherein the determination of thetemporary alternative display viewpoint position and tilt is based onavoidance of an obstruction to the three-dimensional navigationviewpoint.
 21. The system of claim 17, further comprising: automaticallyreturning the three-dimensional view of the navigation route to apreviously displayed viewpoint and tilt.
 22. A computer-readable storagedevice having control logic recorded thereon that when executed by aprocessor, causes the processor to automatically adjust a virtual cameradisplay viewpoint of a three-dimensional navigation system for avehicle, the control logic comprising: a first computer-readable programcode to cause the processor to receive a velocity of the vehicle and alook-ahead distance between the vehicle and a look-ahead point; a secondcomputer-readable program code to cause the processor to determine arange distance between the vehicle and the virtual camera displayviewpoint based on the velocity and the look-ahead distance; and a thirdcomputer-readable program code to cause the processor to: determine afirst position of the virtual camera display viewpoint based on therange distance, display a three-dimensional view of a navigation routefor the vehicle from the first position, receive a change in thelook-ahead distance, determine a new range distance based on thevelocity and the change in the look-ahead distance, determine a secondposition of the virtual camera display viewpoint based on the updatedrange distance, and automatically adjust a tilt of the virtual cameradisplay viewpoint and move the position of the virtual camera displayviewpoint to the second position, wherein the virtual camera displayviewpoint moves to the second position along a curvilinear swoop pathlocated above and behind a representation of the vehicle.